home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio 2000
/
Ham Radio 2000.iso
/
ham2000
/
logs
/
fdall
/
fdlog.doc
next >
Wrap
Text File
|
1995-06-22
|
30KB
|
587 lines
FDLOG
A Field Day dupe checking and logging program for the IBM PC
OVERVIEW:
FDLOG was designed to provide an efficient and simple dupe
checking and logging program for the ARRL Field Day contest.
It has been optimized for the fast paced "search and pounce"
operating style, where the operator continually scans the
band, dupe checking each CQ heard for new contacts. A major
design goal was optimum execution speed, allowing the single
operator/logger to dupe-check and respond to the CQ as quickly
as the calling station sends the last letter of his call sign.
Every consideration was given to minimizing keystrokes when
entering contact data. For instance, after keying in a call,
only the ENTER key is required to dupe-check the call, clear
all fields of an incomplete contact, move to the next field,
enter the record, or clear the record and reset for the next
contact after a dupe is confirmed. The program is intended to
be completely intuitive and transparent in its use, allowing a
proficient single operator/logger to dispense with pencil and
paper altogether. By avoiding the use of function keys and
difficult keystroke combinations, the novice or casual once-a-
year contester quickly becomes a proficient logger.
As in all designs, this one has a few trade-offs: Program
size, efficiency, and performance was the goal here, rather
than maximum flexibility and features, multi-contest ability
and color graphics. This allows the program to be used with
the broadest range of portable, and older equipment likely to
show up on field day. Text (mode 7) B/W video (only) is sup-
ported. A number of critical editor and display driver func-
tions share the $B000-$B800 'visible memory' buffer area in
order to optimize performance while minimizing program size.
The program is NOT compatible with CGA or earlier B/W video.
The entire executable program was kept below 64k bytes as a
design objective, allowing 64k+ bytes of data space in a 128k
byte ram machine.
BACKGROUND:
The program was written in 1989 for the author's personal use.
To meet the performance objectives with the modest PC hardware
of the day (XT/AT era), the structural program was coded in C,
with the database engine, interrupt routines, screen driver,
and certain editor algorithms coded in 80x86 Assembler. While
many lines of source code comprise the final program, much of
this programming effort (including the editor, database engine
and several screen handling routines) had either already been
coded or were concurrently being coded as elements of a "tool-
box" library developed by the author for his business needs.
By borrowing freely from this source, FDLOG became relatively
easy and economical to code as a hobby project while still
achieving the desired performance. The design effort then was
confined mainly to understanding and developing an efficient
and intuitive logging environment for the FD contest. In this
regard, numerous excellent ideas were contributed by my son
AA4XQ, brother KK4RP, and others who put the concepts to test.
MINIMUM HARDWARE REQUIREMENTS:
IBM compatible PC, 80286 (see note) or higher processor, 6 mhz
or higher clock, 128k bytes ram.
360k bytes FD or HD file space (HD and 1m byte file space
recommended).
Hercules (tm) or VGA video adaptor.
Printer output is to the default PRN device, and is optional.
Note: FDLOG.EXE Version 1.1 is compiled to the "small" 80286
memory model for improved search performance. Version
1.0 is required for the 8088 (XT) machines. A special
Version 1.01 "tiny" 8088 memory model (44k code and
data co-resident in 64k ram) is available in FDLOG.COM
format. Any of these versions may be obtained from the
author at no charge other than S&H.
SOFTWARE:
FDLOG Version 1.1 is distributed in two (2) files, FDLOG.EXE
and FDLOG.DOC.
OPERATING SYSTEM:
DOS 3.2 or later.
INSTALLATION:
Create a new directory \FDLOG[yy] on the default drive, where
[yy] is the last two digits of the current year (example
\FDLOG91). Copy the two (2) files FDLOG.EXE and FDLOG.DOC to
the \FDLOG[yy] directory. No other files should be in this
directory. FDLOG.EXE will create all the additional files it
requires. Each contest should begin with a new directory
\FDLOG[yy] with only the FDLOG.EXE and FDLOG.DOC present.
Since it is intended that this program be freely shared with
our fellow hams (true Field Day enthusiasts only), it must
retain filename identity to match this documentation. Resist
the urge to rename the executable file. Make a batch file in-
stead named "FD.BAT", or whatever you choose, to execute
FDLOG.EXE.
DEFINITION OF TERMS:
These definitions apply to the "USING THE PROGRAM:" section
which follows later in the documentation.
Form: Included in this definition are two (2) distinct
areas of the screen, enclosed in individual line borders,
and entitled:
"FD Contest Station"
"This Contact"
These forms arrange the data fields into logically distinct
groups according to function:
The "FD Contest Station" form contains the data on your own
contest station. It includes both the constant data fields
(station call, FD class, ARRL section) entered once at the
beginning of the contest, and the variable data fields
(band, mode, logger, operator) which change from time to
time during the contest.
The "This Contact" form is used to log the contact exchange.
It contains the other station's call, class (or RST if dx),
and section, as received during the exchange.
Field: Any of the labeled data entry areas within a given
form, into which the cursor may be moved and data entered
from the keyboard. For example, the "Search Call:" field in
the "This Contact" form.
Field Label: The description tag of a data field. In the
specific case of the "This Contact" form, the field labels
will change to inform the logger of the current program mode
(search, dupe, RSTrx instead of class, etc.).
Window: There are three (3) windows used by the program to
communicate with the operator/logger. They are contained in
borders entitled:
"Last 8 Contacts"
"GMT"
"f(c/t)"
The "Last 8 Contacts" window provides a consistent display
area at the center of attention directly above the logging
workspace. It is used primarily for a scrolling log window,
a dupe alarm, and a display of the composite score matrix.
The "GMT" window is an interrupt driven digital display of
GMT, derived from the computer hardware clock. It has been
adjusted for time zone and daylight savings time.
The "f(c/t)" window displays a calculation of the contact
rate. This is a relative predictor of the final contact
count for a particular band and mode at the average contact
rate measured thus far in the contest. It's accuracy im-
proves as the contest wears on. Since this number is decre-
mented by the clock during periods of inactivity, it may be
used as a 'pacemaker' during the wee hours.
Command/Status Line: The cryptic line at the bottom of the
screen. During normal logging operations, this is a menu
line which reads: "ALT (B)and (C)lass (L)ogr (M)ode (O)pr
(Q)uit (R)cl (S)ect (T)zone (U)til". The "(T)zone" and
"(U)til" functions will change the Command/Status Line to a
second menu level with additional selections. Malfunctions
or "device not ready" conditions will clear the menu and
report their status on this line.
USING THE PROGRAM:
Starting the program:
Install the program, per "INSTALLATION:" section above.
Verify that the computer clock is set to the correct date
and time for your local time zone. For older versions of
DOS, it's best to use the BIOS setup function for this.
Change to the \FDLOG[yy] directory, and type "FDLOG".
The program should immediately bring up the title screen.
Read the title screen and the stipulations of use. If you
agree with what you see, press "Enter".
Initial set-up:
You will now be viewing the logging screen. The cursor will
be blinking in the "Search Call:" field of the "This Con-
tact" form on the bottom left portion of the screen. If you
received the program from the author, the information in the
"FD Contest Station" form at the top of the screen was com-
piled with the correct installation default data for your
call, section, etc. If you received the program from anoth-
er source, you must change the parameters for your station
call, class (that's FD class) and section. You must also
select a band and mode, fill in the call of the operator
and the call (or initials) of the logger, and set the cor-
rect time zone before you begin logging.
At the bottom of the screen you will see the highlighted
words "ALT" and a number of highlighted capital letters in
parentheses. This is the "Command/Status Line". Most of
these highlighted letters correspond to the first letter of
the field names in the "FD Contest Station" form. If you
wish to access a field in this form, press the "Alt" key
while typing the corresponding first letter of the field
label at the same time. For example, to move the cursor to
the "Class:" field type Alt-C, or Alt-S for the "Section:"
field, etc. Continue with the other fields until you have
the correct set-up for your contest station.
NOTE: You will notice there is no letter shown on the
"Command/Status Line" for the "Station:" field. This
is to prevent an inexperienced logger from changing
your FD station call in the heat of battle. Pressing
ALT-1 will place the cursor in the "Station:" field.
Note also that you cannot access the "Contacts:" field.
This field is used only by the program to display the
contact count for the current band and mode.
When you exit the program, FDLOG will store this data in the
FDLOG.CFG file, so you only have to provide "Station:",
"Class:" and "Section:" field information the first time you
run the program. The "Band:", "Mode:", "Logger:", and "Op-
erator:" fields may be changed many times during the con-
test, and are easily remembered as ALT-B, M, L, and O
respectively. This data also will be stored in the
FDLOG.CFG file, so you will always come back to your last
configuration after exiting the program.
Now set your local time zone by pressing ALT-T. The "Com-
mand/Status Line" will change to show a list of US time
zones. The currently selected time zone will be flashing.
Type the highlighted first letter or number corresponding to
your desired time zone. The new time zone will flash for a
second or two to confirm your choice, and the program will
revert to the logging mode. Your time zone selection will
be stored in the FDLOG.CFG file when you exit the program.
Editor functions within a data field:
FDLOG provides a full cursor-based editor with the following
functions:
Normal IBM PC keyboard functions:
"left arrow" moves cursor one character left
"right arrow" moves cursor one character right
"Ins" toggles insert mode..small cursor
in insert mode, large cursor in over
strike mode..overstrike default mode
"Del" deletes character under the cursor
"BkSp" deletes character to the left of
cursor
"Esc" deletes entire data field..pressing
twice in same field deletes entire
record
"Tab" or advances cursor to next field
"Enter"
"Shift-Tab" moves cursor back one field
WordStar (c) type functions:
"Ctrl-S" moves cursor one character left
"Ctrl-D" moves cursor one character right
"Ctrl-A" moves cursor to start of data field
"Ctrl-F" moves cursor to end of data field
"Ctrl-G" deletes character under cursor
"Ctrl-H" deletes character to the left of
cursor
"Ctrl-Y" deletes entire data field
"Last 8 Contacts" window control:
"up arrow" scrolls log up one record
"down arrow" scrolls log down one record
"PgUp" scrolls log up one screen
"PgDn" scrolls log down one screen
"Home" scrolls to beginning of log
"End" scrolls to end of log
Note: The "space" character is not valid in any of
the data fields. It must NOT be used to edit
or to strike out an unwanted character. Use
"Del" or "BkSp" for this purpose. The space
bar may be used only in the "Class:" field of
the "This Contact" form. Here it functions as
a special shortcut key to enter "599" RSTrx
when logging a dx contact. When you log the
next contact, an alpha character in the
"RSTrx:" field will switch the field label
back to "Class:".
Logging:
This is the easy part.
NOTE: The Logging of all contact exchanges is done in
the "This Contact" form. Unless you are performing
certain housekeeping functions such as printing, or are
updating the "FD Contest Station" form such as changing
bands, mode, etc., the cursor will always be in the
"Call:" field of the "This Contact" form and the pro-
gram will always be in 'search' mode. When you com-
plete any other activity, the cursor will automatically
return here and revert to the search mode. Think of
this field as the 'home base' for the program, and
'search' the primary mode.
The cursor should now be blinking in the "Call:" field of
the "This Contact" form. Type in the call of the station
you intend to work, and press "Enter". If the call is not a
dupe, the cursor will advance to the "Class:" field.
NOTE: If the call was not a dupe, the word "Search" in
the "Call:" field label will be replaced by a temporary
contact number. If you complete and log this contact,
that number will be posted to the "Contacts:" field of
the "FD Contest Station" form. If however the call is
a dupe, the word "Search" will be replaced by the word
"Dupe!" and the program will then allow the options of
acknowledging, editing or deleting the record.
Fill in the "Class:" field and press "Enter". You will ad-
vance to the "Section:" field. Fill in this field and press
"Enter".
You have logged your first contact. The "Contacts:" field
in the "FD Contest Station" form will be incremented. Your
new log entry will scroll up from the bottom in the "Last 8
Contacts" window. Notice that the program has added the
date, time, band, mode, logger, and operator to the record.
Incomplete contact:
Many times during a contest you will be logging a contact
and either lose the station due to band conditions, or find,
to your chagrin, the station you thought you were working is
really talking to someone else. To quickly clear the in-
complete log entry and reset the search mode, simply press
the "Enter" key twice. All fields will be cleared and the
cursor will return to the "Call:" field ready to log the
next contact.
NOTE: If an attempt is made to enter a record and any
field in the record is blank, the program will abort
the log entry and reset to search mode. Since pressing
the "Enter" key the first time will abort the log entry
outright if the cursor is in a blank field, pressing it
twice will cover the case of the cursor in a non-blank
field; the first "Enter" advances to the next field
which is blank, and the second "Enter" in a blank field
aborts the log entry, clears the fields, resets search
mode, and returns the cursor to the "Call:" field.
Dupe!:
If the call is a dupe, you will get the following dupe
response: The computer will 'beep' and the word "Search" in
the "Call:" field label will be replaced by the word
"Dupe!". The duplicate record will appear in inverse video
in the "Last 8 Contacts" window. In a little square pop-up
window on the right side of the "Last 8 Contacts" window you
will see the words "(E)dit" and "(D)elete" with the first
letters in parentheses and highlighted. The word "ENTER"
will appear in flashing letters in the lower border of the
pop-up window. Press the "Enter" key. The dupe condition
will be reset and the program will revert to 'search' mode
with the cursor in the "Call:" field of the "This Contact"
form. You are ready to log the next contact.
Editing or deleting a logged call:
The program allows editing or deleting an existing log
entry. In editing, you may change only contact exchange in-
formation you entered in the "This Contact" form (call,
class or RSTrx, section). Editing the data that was added
to the log entry by the program after you entered the record
(date, time, band, mode, operator, logger) is NOT allowed,
for reasons that will become clear as you use the program.
Of course, you may delete entire records and re-enter them
correctly, but they will then bear an incorrect time stamp.
Key in the call corresponding to the log entry to be edited.
Since it is an existing log entry, it is also a dupe. You
will get the usual dupe response, with a 'beep' and the
record flagged in the "Last 8 Contacts" window. In a little
square pop-up window on the right side of the "Last 8 Con-
tacts" window you will see the words "(E)dit" and "(D)elete"
with the first letters in parentheses and highlighted. The
word "ENTER" will appear in flashing letters in the lower
border of the pop-up window.
Oops:
If you changed your mind, press the "Enter" key. You will
be returned by the program to the "This Contact" form with
the cursor in the "Call:" field, ready to log the next con-
tact. "ENTER" would be your choice also if you were just
acknowledging a dupe, with no intent to edit or delete.
Deleting a log entry:
If you wish to delete the log entry, type a "D", and the
entry is deleted. You will be returned by the program to
the "This Contact" form with the cursor in the "Call:"
field, ready to log the next contact. Be careful when you
delete a log entry. Although you can easily re-key the data
for an unintentional deletion, the new time stamp will be
incorrect for the actual time you worked the station.
Editing a log entry:
If you wish to edit the log entry, as above, just enter the
call, get the dupe response, but this time type an "E". The
"Last 8 Contacts" window will change to display the log
entry of the applicable log sheet, along with a few stations
worked before and after the 'target' log entry. This fea-
ture provides time and sequence context for resolving the
possible logging error. The call sign for the log entry to
be edited will be tagged with inverse video. You will
notice that the cursor has returned to the "Call:" field of
the "This Contact" form, and the fields now contain the data
from the record to be edited. Move to the desired field
using the "Enter", "Tab", or "Back-Tab" keys. Move the cur-
sor to the error using the cursor control keys, and correct
the error. When all looks good, press the "Enter" key to
advance through the remaining fields and conclude the trans-
action. Notice that the "Last 8 Contacts" window displays
the corrected log entry for your verification until you log
the next contact, when it again reverts to the bottom of the
log sheet. All fields in the "This Contact" form are now
cleared and the cursor will have returned to the "Call:"
field, with the program in 'search' mode, ready to log the
next contact. When editing, don't worry that you may make a
mistake that will damage your record or others in the log.
You may edit a log entry any desired number of times, and
the editor will prevent your changing a call to duplicate an
existing record (example: the editor will not allow you to
change W1AX into W1AW if W1AW already is a valid log entry).
Utilities:
The following utilities are available by pressing ALT-U:
(B)ackup Saves the current binary log file and creates
a corresponding .BAK file with the same name.
This file may be renamed .LOG and used in the
event the primary log file becomes corrupted.
The logger is advised to use this function
when changing loggers or leaving the computer
unattended.
(P)rint Prints a date/time sorted listing of the log
by band and mode. This function only applies
to the currently open log file. It's always a
good idea to run Backup before printing.
(S)core Calculates and displays the composite score by
band and mode, and based on a power level of
< 150 watts. The results are displayed in
the "Last 8 Contacts" window area. Add your
bonus points to the score shown.
(X)port Creates a comma delimited ASCII text file
which corresponds to the currently open log
file. This file will have the same filename
as the binary log file, but with a .ASC rather
than a .LOG extension. The ASCII text file is
a format easily imported into your favorite
database program for the usual field day post
mortem file clean-up, analysis and reports.
Be sure to send ARRL a copy of your cleaned up
log in ASCII format as a check log, even if
you don't claim high scores.
Quitting the program:
Pressing ALT-Q will write all log entries and program status
to disk and quit the program. This function appears on the
"Command/Status Line" as (Q)uit.
FILE STRUCTURE:
The FDLOG file structure is created and managed by the program
itself. A logical naming convention has been followed, based on
the function and contents of the file:
File Name Description
FDLOG.EXE Executable program file.
FDLOG.DOC This documentation file.
FDLOG.CFG System configuration file.. retains
configuration and set-up parameters
(station call, class, section, band,
mode, logger, time zone, etc.) upon
exiting the program.
FD[band][mode].LOG Example: FD40CW.LOG is the binary log
file for 40m CW. A binary log file is
opened automatically by the program
for each band and mode used in the
contest.
FD[band][mode].BAK Example: FD40CW.BAK is the binary
back-up binary log file for 40m CW.
This is an optional file created by
the "Backup" utility (ALT-U/B) at the
loggers discretion. It may be renamed
FD40CW.LOG and used in the event of a
corrupted primary log file.
FD[band][mode].ASC Example: FD40CW.ASC is a comma
delimited ASCII file corresponding to
the FD40CW.LOG binary log file. This
is an optional file created by the
"(X)port" utility (ALT-U/X) after the
contest. You must run this utility on
each FD[band][mode].log file you wish
to export. It would normally be used
to provide file compatibility with
your favorite database program so you
can generate the fancy post-contest
reports for your group (and files for
ARRL).
CONTACTING THE AUTHOR:
The author is interested in hearing from users of FDLOG. If you
experience any problems using your program, or if you particular-
ly enjoy any of the features, please drop me a QSL card or e-mail
me at the address below with your comments. I would enjoy hearing
from you.
73, es gl in the contest,
J.F. Maybin, W4BKV
839 Forest Drive, North.
Tallahassee, FL 32303-5110
jfmaybin@freenet.fsu.edu